﻿//-----------------------------------------------------------------------------------------
// <copyright file="CameraFlash.cs" company="Jakub Florczyk (www.jakubflorczyk.pl)">
//      Copyright © 2009 Jakub Florczyk (www.jakubflorczyk.pl)
//      http://samsungmobilesdknet.codeplex.com
// </copyright>
//-----------------------------------------------------------------------------------------

namespace SamsungMobileSDKNET
{
    using System.Runtime.InteropServices;

    /// <summary>
    /// Samsung Camera Flash API.
    /// </summary>
    /// <remarks>
    /// The camera flash API controls the camera LED flash lamp.
    /// </remarks>
    public class CameraFlash
    {
        /// <summary>
        /// Turns on the camera flash.
        /// </summary>
        /// <returns>
        /// <see cref="F:SamsungMobileSDKNET.ResultCode.Success"/> if the operation finishes successfully. The application should not use the return value to determine flash status.
        /// <br/>
        /// <see cref="F:SamsungMobileSDKNET.ResultCode.ErrorDeviceNotFound"/> if the camera flash is not found or not supported
        /// <br/>
        /// <see cref="F:SamsungMobileSDKNET.ResultCode.ErrorUnknown"/> if any other error happens.
        /// </returns>
        [DllImport(Common.DllName, EntryPoint = "SmiCameraFlashTurnOn")]
        public static extern ResultCode TurnOn();

        /// <summary>
        /// Turns off the camera flash.
        /// </summary>
        /// <returns>
        /// <see cref="F:SamsungMobileSDKNET.ResultCode.Success"/> if the operation finishes successfully. The application should not use the return value to determine flash status.
        /// <br/>
        /// <see cref="F:SamsungMobileSDKNET.ResultCode.ErrorDeviceNotFound"/> if the camera flash is not found or not supported
        /// <br/>
        /// <see cref="F:SamsungMobileSDKNET.ResultCode.ErrorUnknown"/> if any other error occurs
        /// </returns>
        [DllImport(Common.DllName, EntryPoint = "SmiCameraFlashTurnOff")]
        public static extern ResultCode TurnOff();
    }
}
